查看原文
其他

Hadoop Committer如何炼成?爱奇艺新晋核心贡献人给出了这份攻略!

撸起袖子搞开源的 爱奇艺技术产品团队 2023-03-27

近日,全球最大的开源基金会Apache基金会的大数据开源社区Hadoop公布了最新一批Committer(核心贡献人),爱奇艺大数据团队的朱琦同学接受Apache社区邀请,正式成为了Hadoop Committer的一员。


朱琦从2018年开始为Apache 社区贡献,被merge(合并)过超万行代码,这也是爱奇艺首位Hadoop Committer


来自Apache的邀请邮件


成为一名Hadoop Committer需要哪些品质?又有哪些责任?如何在开源工作和日常工作中寻找平衡?就这些问题,我们和朱琦聊了聊,深入了解了在爱奇艺,一名年轻的Hadoop Committer如何炼成。


01

Apache Hadoop Committer如何选出?


对于不太熟悉的同学,我们可能需要先解决几个问题。什么是Apache Hadoop?Committer又是怎样被选出来的?


了解大数据领域的读者对Apache Hadoop肯定不会陌生,这款开源软件的分布式应用程序根据谷歌公司发表的MapReduce和Google论文自行实现而成,目前已经是全球最受欢迎的的大数据开源软件框架之一。

Apache每个项目会安排相关委员会(PMC)和若干Committer。选举方式和组织结构都比较明确。Committer的主要责任是维护项目持续发展,比如项目新功能的开发,提出新的功能作为发展趋势,除了可以直接提交代码,还可以一票否决任何一个Patch。


Hadoop作为全球最“数据中心的操作系统”,对代码质量要求比较高。因此要成为一名Apache Hadoop Committer,你首先必须要对社区已有开源代码和结构设计有深刻理解。因为Hadoop涉及到不少分布式计算里相对复杂的概念,完全理解现有设计和代码已经是一件很不容易的事情了。


此外,成为Committer还要在至少一个大的feature方向上是主力贡献人,这一点主要是通过被项目合并的代码数量体现,也就是说,对merged代码数量上有一定硬性规定。


Hadoop作为大数据底层的支撑项目,一般改代码量不会很多,这就意味着,贡献者不仅要有过硬的代码技能和专业知识,还得真实解决过社区的项目问题,才能被PMC提名,获得入选机会。朱琦告诉我们,他在当选Committer之前,目前已经有超过万行代码被社区合并。


目前,全球共有230多位Hadoop Committer,其中来自中国的Committer有十余名


02

 从非计算机专业,到Hadoop Committer



虽然还很年轻,但朱琦在开源社区的工作经验已经非常扎实了。朱琦本科主修化学材料,因为选修了一门程序语言设计课程对软件行业产生了浓厚的兴趣,于是在研究生阶段直接转到了计算机相关专业。虽然专业不是大数据方向,但他一直对大数据特别是Hadoop非常感兴趣。


工作后朱琦开始接触Hadoop项目,加入爱奇艺后在智能平台部门承担与大数据相关的工作,也因为工作原因,对一些大项目的底层源码研究很多,日积月累积累了看代码的能力。


图2:朱琦生活照


(代码)的输入非常重要,要输出必须要有输入。作为开源社区贡献者的前提是有输入,得理解了原先代码的逻辑,才能输入开发改造新的模块,才能有积累。”朱琦表示,“接触开源社区最开始是作为Contributor做一些贡献,从发现小问题、流程化的东西开始研究。慢慢把流程搞懂之后,就可以开始深入代码了。”


在积极参与开源社区的过程中,朱琦自己也收获了很多。从作为一个参与者可以了解一个顶级项目的发展触类旁通,到现在成为Committer,为社区的其他成员和社区发展解决了不少问题,也研究了很多代码。“现在去其他项目也比较能了解代码逻辑,也可以为公司各个大数据项目做贡献。



在公司中,朱琦也发现,越来越多的同学开始参与到了开源项目中,一起深入了解各个项目。“这一方面也能反馈给公司底层部门,比如大数据相关内容,维护能力就变强了,另一方面可以提升成本优化和性能优化,减少公司实在支出,提升用户体验,更有利于平台推广。”


03

 爱奇艺持续建设开源文化,回馈社区



这些年,爱奇艺一直非常重视开源文化的发展,成立了开源工作组,发布了规范的开源项目流程,致力于建立规范、有序、安全的开源体系架构,鼓励项目内部、外部开源,增强技术交流,提高研发效率。


爱奇艺自己的一些业务实践探索,也会积极回馈到开源社区中,解决了不少开源社区中的项目问题。以朱琦所在的大数据团队为例,爱奇艺大数据架构和开源社区始终保持同步良性发展。


“比如爱奇艺最近紧跟社区对Hadoop相关的架构进行升级,针对新的hadoop项目去做测试,这个过程中就会出现一些问题,爱奇艺自己出现的问题就会回馈社区,一方面可以回馈社区,另一方面也解决了社区问题。”


基于Hadoop的开源内容,爱奇艺自己的业务改进已经有不少合入了社区,已经Merge了Hadoop相关的部分包括:CS调度器统一FS的兼容性,全局调度优化,GPU资源相关的优化,大规模集群事件驱动的优化,弹性伸缩队列,Proxy server优化,Router Based Federation问题修复和优化,等功能。


和朱琦一样,爱奇艺中不少员工也都是开源社区的积极参与者。他们在开源社区中贡献代码、解答其他社区参与者遇到的问题,维持社区的正常、有序运转。


朱琦对此深有感触,“Apache发展十几年,就是因为有不同的用户和开发者,良性维护生态,共同交流互动。大家一方面在这里交流经验,解决自己遇到的问题,另一方面也可以从别的公司或者开发者提出的相关问题中吸收经验,防范于未然。”


04

 从入门到终极,开源进阶攻略!



亲历了开源文化近些年在国内的发展,朱琦也颇为感慨。


“之前开源其实没有这么火热,大家对开源的理解就是借来用,不太愿意贡献和参与其中,但也存在不少问题。很多公司没有使用开源项目,是闭源的,相关研发人员离职,代码就有很多历史包袱。现在开源已经是一个大趋势,对公司来说,现在国内外各个互联网公司,特别是爱奇艺内部工程师文化建设中,都越来越重视开源文化了,通过开源,不仅公司的项目也会越来越好,贡献者本身也可以从中获得很多。


最后,朱琦也对想要入门开源文化的同学,给出了一些从入门、进阶到终极的建议。


入门


熟悉开源项目的贡献流程,各个项目都会有how to contribute的文档。


小的问题着手开始贡献,例如代码中的拼写错误,项目文档的改进,小的bug的修复。


进阶


能够对项目在生产环境产生的问题,或者社区用户遇到的问题进行修复,性能优化等。


终极


对于项目的重大feature的设计文档进行理解,甚至参与设计文档,然后根据项目架构进行添加子任务进行开发贡献。


“总体来说,开源社区贡献是一件需要持续花费时间和精力的事情。从吃透一个模块开始,逐渐深入,多贡献,也多参与问题讨论和review代码,祝大家都能在开源社区走得更远更好。”


看完心动了吗?爱奇艺多个方向的职位在等待各路英才点击“阅读原文”获取更多爱奇艺岗位信息!


也许你还想看

算法如何促成亿级别扶持曝光视频?爱奇艺Budget Pacing智能扶植系统实践

怎样节省 2/3 的 GPU?爱奇艺 vGPU 的探索与实践

听见用户的声音,爱奇艺全渠道用户反馈分析的探索与实践




 关注我们,更多精彩内容陪伴你!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存